package com.jabm.cmaq.negocio.impl;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import com.jabm.cmaq.dao.CMaqHerramientasDAO;
import com.jabm.cmaq.modelo.CMaqHerramientas;
import com.jabm.cmaq.modelo.CMaqUsuarios;
import com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager;
/**
 *  Capa de gestion para la entidad de Herramientas.
 *  Copyright: Copyright (c) 2014
 *  Company:
 *  @author jabastias
 *  @version 1.0
 */
public class CMaqHerramientasManagerImpl  implements ICMaqHerramientasManager{
	
	/**
	 * DAO para la realizacion de las operciones CRUD sobre CMaqHerramientas.java
	 */
	private CMaqHerramientasDAO iHerramientasDAO;

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#insertarHerramientas(com.jabm.cmaq.modelo.CMaqHerramientas)
	 */
	public void insertarHerramientas(CMaqHerramientas herramienta) {
		iHerramientasDAO.insertar(herramienta);		
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#modificarHerramientas(com.jabm.cmaq.modelo.CMaqHerramientas)
	 */
	public void modificarHerramientas(CMaqHerramientas herramienta) {
		iHerramientasDAO.modificar(herramienta);			
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#borrarHerramientas(com.jabm.cmaq.modelo.CMaqHerramientas)
	 */
	public void borrarHerramientas(CMaqHerramientas herramienta) {
		iHerramientasDAO.borrar(herramienta);
		
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#buscarHerramientas(int)
	 */
	public CMaqHerramientas buscarHerramientas(int id) {
		return iHerramientasDAO.buscar(id);
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#listarTodasHerramientas()
	 */
	public List<CMaqHerramientas> listarTodasHerramientas() {
		return iHerramientasDAO.listarTodos();
	}

	/**
	 * @return the iHerramientasDAO
	 */
	public CMaqHerramientasDAO getiHerramientasDAO() {
		return iHerramientasDAO;
	}

	/**
	 * @param iHerramientasDAO the iHerramientasDAO to set
	 */
	public void setiHerramientasDAO(CMaqHerramientasDAO iHerramientasDAO) {
		this.iHerramientasDAO = iHerramientasDAO;
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#filtrarHerramientas(com.jabm.cmaq.modelo.CMaqHerramientas)
	 */
	@Override
	public List<CMaqHerramientas> filtrarHerramientas(
			CMaqHerramientas herramienta) {
			    
		        //Se genera la sql
				String sql = "from " + CMaqHerramientas.class.getName() + " herr where 1=1";
												
				if(herramienta.getCantidad() != null) {
					sql = sql + " and herr.cantidad = '"+herramienta.getCantidad()+"'";
				}
								
				if(herramienta.getCodigo() != null 
						&& !herramienta.getCodigo().equals("")){
					sql = sql + " and herr.codigo = '"+herramienta.getCodigo()+"'";
				}
								
				if(herramienta.getEstado() != null 
						&& !herramienta.getEstado().equals("")){
					sql = sql + " and herr.estado = '"+herramienta.getEstado()+"'";
				}
				
								
				if(herramienta.getNombre() != null 
						&& !herramienta.getNombre().equals("")){
					sql = sql + " and herr.nombre = '"+herramienta.getNombre()+"'";

				}				
								
				if(herramienta.getTotal() != null){
					sql = sql + " and herr.total = '"+herramienta.getTotal()+"'";

				}			
				
				if(herramienta.getValor() != null){
					sql = sql + " and herr.valor = '"+herramienta.getValor()+"'";

				}
				
				if(herramienta.getcMaqFrenteTrabajo() != null && !"".equals(herramienta.getcMaqFrenteTrabajo().getNombre())){
					sql = sql + " and herr.cMaqFrenteTrabajo.nombre= '"+herramienta.getcMaqFrenteTrabajo().getNombre()+"'";
				}
				
				if(herramienta.getcMaqUsuario() != null && 
						herramienta.getcMaqUsuario().getNameEmployee() != null
						&& !"".equals(herramienta.getcMaqUsuario().getNameEmployee())){
					sql = sql + " and herr.cMaqUsuario.nameEmployee = '"+herramienta.getcMaqUsuario().getNameEmployee()+"'";
				}
				
				
				if(herramienta.getFechaDesde() != null){
					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");			
					sql = sql + " and herr.fecha >= '"+sdf.format(herramienta.getFechaDesde())+"'";

				}
				
				if(herramienta.getFechaHasta() != null){
					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
					sql = sql + " and herr.fecha <= '"+sdf.format(herramienta.getFechaHasta())+"'";

				}
				
				
				return iHerramientasDAO.filtrar(sql);
				
				
	}


	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#updateEstadoHerramienta(java.lang.String, java.lang.String, java.sql.Date)
	 */
	@Override
	public boolean updateEstadoHerramienta(String codigo, String estado, Date fecha,  CMaqUsuarios usuario) {
		return iHerramientasDAO.updateEstadoHerramienta(codigo, estado, fecha, usuario.getIdUsuario());
	}

	
}
